하나의 도메인으로 여러 프로젝트 연결하기

일반
2026년 3월 10일
/Platform/Vercel/하나의 도메인으로 여러 프로젝트 연결하기
목차
1. 도메인 구입
1.1. 구매처: Gabia
1.2. TLD(최상위 도메인) 선택
2. DNS 설정
2.1. DNS란?
2.2. 방법1: 가비아 DNS 서버에 레코드 등록
2.3. 방법2: vercel DNS서버 직접 사용

도메인 구입

구매처: Gabia

우선 도메인을 구매하기 위해 여러 구매처들을 살펴봤다. 도메인 관리 업체는 매우 다양한데 AWS, gabia, hostingkr 등에서 구매할 수 있다. 현재 AWS 서버를 이용하고 있지 않으므로, 쉽게 사용 가능하고 이전에 사용 경험이 있는 gabia를 선택했다. 참고로 너무 싼 구매처는 추후 유지관리 시 문제가 생길 수도 있고, 기간 연장 시 가격이 인상되는 경우도 있으니 피하는게 좋다.

TLD(최상위 도메인) 선택

TLD(최상위 도메인)란 도메인 확장자로 알려져있으며, 도메인의 마지막 부분에 위치한다. 이는 해당 웹사이트의 목적, 지리적 위치 등과 같은 정보를 인식하는데 도움을 준다.

최상위 도메인의 종류는 매우 다양한데,
.edu, .gov 개별 조직에서 감독하는 도메인도 있고, 국가에서 관리하는 .us, .kr등의 도메인도 존재한다.

이런 도메인 주소는, 검색엔진 최적화에도 중요한 부분이므로 목적에 맞게 선택하는게 좋다! 하지만 해당 도메인을 원한다고 무조건 쓸 수 있는건 당연히 아니다. 다른 개인이나 기관이 이미 사용중이라면 사용할 수 없다. 이 때문에 여러 분쟁이 나기도 하고, 좋은 도메인(소위 레어템)을 비싼 값에 파는 경우도 있다.

no image
ai.com 같은 도메인은 당연히 사용 불가하며, 최근 해당 도메인이 약 1000억원에 팔렸다는 기사가 떠서 재밌게 읽었던 기억이 난다.

나도 gabia에서 사용 가능한 도메인을 검색해봤는데, 내가 원하는 도메인의 TLD는 대부분 사용이 가능했고, 난 ka1dyn.com 으로 결정했다!

DNS 설정

도메인으로 접근하기 위해서는 DNS설정이 필수적이기 때문에 DNS에 대해 간단하게 알아보고 넘어가자.

DNS란?

DNS는 "Domain Name System"의 약자로, domain 주소를 실제 물리적 IP 주로소 변환해주는 역할을 한다.

브라우저가 도메인에 접속하면 어디 주소로 접속해야 하는지 DNS 서버에게 물어본다. 보통 한번 접속했던 주소는 로컬에서 캐싱하기 때문에 로컬 캐시에서 먼저 찾아보고, 없다면 외부 DNS서버에서 찾아온다. 자세한 과정은 생략하고 결과적으로 가비아 DNS 서버나 Vercel DNS 서버로부터 도메인에 대한 주소 정보를 읽어온다.

이 과정은 이렇게 표현할 수 있다. 로컬에 주소가 없네? 밖에 나가서 찾아봐야겠다. 가비아 DNS야 나 이 domain으로 접속할건데 어디로 요청 보내면 돼?

따라서 우리는 미리 DNS 서버에 어디로 요청해야하는지 설정을 해야한다.

참고로 가비아에 적용된 DNS 서버들은 다음과 같다. 브라우저는 해당 서버들에서 내 domain에 대한 주소를 얻어온다.
no image

가비아 DNS 외에 다른 DNS서버를 직접 추가할 수도 있어서, 외부 DNS 서버를 직접 사용하고 싶다면 수정해서 사용해도 된다 조금 있다가 추가하는 방식도 살펴볼 예정이다. 그럼 브라우저가 주소를 찾기 위해 해당 서버에 접근해서 정보를 가져온다.

방법1: 가비아 DNS 서버에 레코드 등록

브라우저가 주소를 찾기 위해 DNS 서버에 접근했을 때 우리는 실제로 해당 도메인은 이런 주소로 가면 돼 라는 정보를 알려줘야 하고, 이는 위해 DNS 레코드를 등록해야한다.

DNS 레코드에는 대표적으로 A 레코드, CNAME 레코드가 있다.

  • A 레코드: 도메인과 IPv4 주소를 직접 연결
  • CNAME 레코드: 도메인을 또 다른 도메인으로 연결

A 레코드의 경우는 고정 IP인 경우 사용해야하는데, AWS나 Vercel 등 내부적으로 ip가 변경되면 A레코드는 동작하지 않는다. 따라서 각 호스팅 업체가 제공하는 도메인 정보를 CNAME으로 연결해주는 방식이 일반적이다.

우선 Vercel에서 프로젝트가 어떤 주소로 배포됐는 지 확인해보자. 이는 프로젝트 관리화면에서 찾아볼 수 있다.
no image

이후 Gabia에 접속해서 CNAME 레코드를 통해 구매한 도메인(ka1dyn.com)과 vercel의 주소를 연결해줬다. 이 때 중요한건 CNAME 도메인에 Host를 지정할 수 있다는 것이다. 호스트를 설정하면 blog.ka1dyn.com와 같이 사용할 수 있다.

no image

이제 브라우저가 blog.ka1dyn.com 접속하면 -> 가비아의 DNS레코드 확인, vercel app 주소 받아옴 -> vercel 프로젝트 주소로 접속시도

이렇게 접속할 수 있어야겠지만, 아래와 같은 에러가 난다.
no image
만약 이 에러가 아니라 아래처럼 연결할 수 없다는 에러가 뜬다면 그건 앞에 자동으로 www가 붙어서일 확률이 크다. www가 붙는 주소는 또 따로 설정해줘야 하는데, 우선 기본 주소만 테스트해보자. 직접 https://blog.ka1dyn.com처럼 풀네임을 입력해서 테스트해보면 된다.
no image

어쨌든 위처럼 404 페이지가 뜬다는 것은 vercel로 연결은 됐다는 뜻이다. 하지만 vercel에서 도메인 설정을 추가해주지 않으면 에러가 뜬다.
vercel에 접속 요청을 하면 vercel은 요청 헤더에서 호스트 정보를 읽는다. 이 때 등록되지 않은 주소로 요청이 들어오면 404 Not Found로 응답하기 때문에 접근이 불가한 것이다.

따라서 Vercel에서 다음과 같이 프로젝트에 도메인 추가를 해주면 된다.
no image
no image

이런 식으로 프로젝트에 도메인을 추가해주면 이제 https://blog.ka1dyn.com 으로 잘 접속이 된다! www는 따로 설정을 해야한다.

이 방법은 프로젝트마다 전부 Cname을 가비아에서 설정해줘야 하기 때문에 약간 귀찮은 부분이 있어서 개인적으로 아래 방법을 선호한다.

방법2: vercel DNS서버 직접 사용

현재 가비아 DNS에서 레코드를 읽어서 Vercel로 접근하고 있는데, 어차피 Vercel에서도 도메인 설정을 하는데 굳이 가비아에서 또 할 필요 있나?

가비아에 아무런 설정도 하지 않고 vercel 프로젝트에 도메인을 추가하면 다음과 같은 에러가 난다. DNS 레코드를 추가하거나 Vercel DNS 서버를 사용하라는 뜻이다.
no image
vercel dns 주소를 위처럼 보여주기 때문에. 이 서버주소를 가비아의 name server에 추가만 해주면 된다.

Gabia 설정화면
no image
요렇게 DNS 서버를 수정해줬다.

이렇게 하면 브라우저가 도메인에 접속하면 가비아 DNS서버가 아닌 직접 Vercel DNS서버로부터 정보를 얻어가며, 도메인 정보가 있으면 바로 접속허가를 해준다.

no image

아주 간단하게 설정을 완료했다. 이제 나머지 프로젝트들도 vercel 프로젝트 관리에서 도메인만 추가하면 전부 접속이 가능해진다.